包含特殊字符的Excel表格转换为utf | 您所在的位置:网站首页 › 特殊符号 编码格式是什么 › 包含特殊字符的Excel表格转换为utf |
问题描述:
由于笔者项目需要进行关系图谱展示,需要将每篇论文的作者数据构建成共现矩阵,用以输入到Gephi软件中汇出关系图。故,对于爬取的作者数据(存储在Excel中)需要先转换成逗号分隔文件csv。 【初始数据及描述】:由于发表会议论文的作者来自不同国家,所以在作者命名上存在有些作者用自己本国语言(如丹麦语、俄语包含如ć、ø、å、ś特殊符号等)的名字作为论文上自己的名字。这就导致了包含这些语言的xlsx文件另存为csv文件时无法被ASCII编码方案解码。从而在转换后的csv中以?来显示这些特殊字符。 笔者在网上找到了不少解决csv文件打开乱码方案,但大多数都是针对中文字符的。 使用Notepad++打开xlsx文件尝试转换编码为utf-8 ——转换后在csv文件中依然以?来显示ć、ø、å、ś——无效将xlsx文件另存为txt后再将txt文件的编码转换为utf-8——结果同上,无效 自己的成功解决方案: 一、将Excel文件中的表格数据复制到一个空的txt文件中可见,复制过来后在txt文件中每个单元格的数据用一个制表符\t隔开,每行用一个换行符\n隔开。特殊字符依然正常表示。 由于该txt文件默认编码是ASCII,所以我们需要另存为修改其编码方案为utf-8。 这里,笔者使用Python(其他语言也ok)读取并处理该txt文件数据为csv格式并输出到csv文件。代码如下: text = [] with open(r'C:\Users\Administrator\Desktop\111.txt', 'r', encoding='utf-8') as f: text = f.read() text = text.replace('\t',',') # 将数据中的制表符'\t'替换为逗号',' text2csv = text.replace(',0','') # 将数据中的空白项',0'替换为空'' print(text2csv) with open(r'C:\Users\Administrator\Desktop\222.csv', 'w', encoding='utf-8') as f: f.write(text2csv)和预期结果一致,也正常显示了特殊字符: |
CopyRight 2018-2019 实验室设备网 版权所有 |